Day1 정답률 높은 문제 1

✒️ 2024-03-22 10:28 내용 수정

Day1 1단계 20240322


1. 평균 구하기

class Solution {
    public double solution(int[] arr) {
        double answer = 0;
        
        for(int i = 0; i < arr.length; i++) {
            answer += arr[i];
        }
        
        return answer/arr.length;
    }
}
import java.util.*;
import java.lang.*;

class Solution {
    public double solution(int[] arr) {
       
        return Arrays.stream(arr).average().getAsDouble();
    }
}

2. 짝수와 홀수

class Solution {
    public String solution(int num) {
        return num%2==0 ? "Even" : "Odd";
    }
}

3. 나머지가 1이 되는 수 찾기

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        if ((n-1) % 2 == 0) return 2;
        
        for(int i = 3; i <= n-1; i++) {
            if((n-1) % i == 0) {
                answer = i;
                break;
            }
        }
        
        return answer;
    }
}
class Solution {
    public int solution(int n) {
        int answer = 1;

		while(true) {
			if(n % answer == 1) {
				break;
			}
			answer++;
		}
        return answer;
    }
}

4. 자릿수 더하기

import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for(String str : (n+"").split("")) {
            answer += Integer.parseInt(str);
        }
        
        return answer;
    }
}

자릿수더하기 1.png

public class Solution {
    public int solution(int n) {
        int answer = 0;
               
        while(n != 0) {
        	answer += n%10;
        	n /= 10;
        }
        
        return answer;
    }
}

자릿수더하기 2.png


5. 문자열을 정수로 바꾸기

class Solution {
    public int solution(String s) {
        return Integer.parseInt(s);
    }
}

6. 약수의 합

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for(int i = 1; i <=n; i++) {
            if(n%i==0) {
                answer += i;
            }
        }
        
        return answer;
    }
}
class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for(int i = 1; i <=n/2; i++) { // n/2까지만 loop를 돌리므로 더 효율적
            if(n%i==0) {
                answer += i;
            }
        }
        
        return (answer + n); // 약수에는 자기 자신도 포함됨
    }
}
class Solution {
    public int solution(int n) {
        int answer = (Math.sqrt(n) == (int)Math.sqrt(n)) ? (int)Math.sqrt(n) : 0;
		
		for(int i = 1; i < Math.sqrt(n); i++) {
            if(n%i==0) {
                answer += (i + n/i); // 약수와 그에 대응되는 약수쌍(몫)을 더함
            }
        }
		
		return answer;
    }
}